// ==================================================================================================
// Copyright(C) 2018 FI Ltd. All rights reserved.
//
// SYSTEM NAME	   : FI.Net Application Framework
// COMPONENT ID	   : FI.Helpers.Data.CircularDataTableRelationException
// COMPONENT DESC  :		
//
// CREATED DATE/BY :	18 Aug 2018 / Tian Mi
//
// REVISION HISTORY:	DATE/BY			SR#/CS/PM#/OTHERS		DESCRIPTION OF CHANGE
// ==================================================================================================

using System;
using System.Runtime.Serialization;

namespace FI.Helpers.Data
{
    /// <summary>
    /// The exception thrown when circular relation happens.
    /// </summary>
    [Serializable]
    public class CircularDataTableRelationException : Exception
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="CircularDataTableRelationException"/> class.
        /// </summary>
        public CircularDataTableRelationException() { }
        /// <summary>
        /// Initializes a new instance of the <see cref="CircularDataTableRelationException"/> class.
        /// </summary>
        /// <param name="message">The message.</param>
        public CircularDataTableRelationException(string message) : base(message) { }
        /// <summary>
        /// Initializes a new instance of the <see cref="CircularDataTableRelationException"/> class.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="inner">The inner exception.</param>
        public CircularDataTableRelationException(string message, Exception inner) : base(message, inner) { }
        /// <summary>
        /// Initializes a new instance of the <see cref="CircularDataTableRelationException"/> class.
        /// </summary>
        /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
        /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
        /// <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
        /// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
        protected CircularDataTableRelationException(
          SerializationInfo info,
          StreamingContext context)
            : base(info, context) { }
    }
}